package com.qf.service.serviceImpi;

import com.qf.dao.UserDao;
import com.qf.dao.daoimpl.UserDaoImpl;
import com.qf.pojo.User;
import com.qf.service.UserService;
import com.qf.util.Constants;
import com.qf.util.MD5Utils;
import com.qf.util.RandomUtils;

import java.util.Random;

public class UserServiceImpl implements UserService {
    UserDao userDao = new UserDaoImpl();

    @Override
    public User login(String username, String password) {
        User user = userDao.FindUserByName(username);
        if (user == null) {
            return null;
        }
//      判断是否激活
        if (!Constants.USER_ACTIVE.equals(user.getStatus())) {
            return null;
        }
//      判断角色
        if (Constants.ROLE_ADMIN != user.getRole()) {
            return null;
        }
//      判断密码
        String passwordMd5 = MD5Utils.md5(password);
        if (passwordMd5.equals(user.getPassword())) {
            return user;
        }
        return null;
    }

    @Override
    public boolean check(String username) {
        User user = userDao.FindUserByName(username);
        if (user == null) {
            return true;
        } else {
            return false;
        }

    }

    @Override
    public int createUser(User user) {
//        1、对密码加密
        String md5 = MD5Utils.md5(user.getPassword());
        user.setPassword(md5);
//        2、设置消费者状态默认为激活状态
        user.setStatus(Constants.USER_ACTIVE);
//        3、初始化用户角色为消费者
        user.setRole(Constants.ROLE_CUSTOMER);
//         4、初始化，消费者随机激活码
        user.setCode(RandomUtils.createActive());

//        5、调用dao完成添加功能
        int count = userDao.addUser(user);
        return count;
    }
}
